#include <stdio.h>

int main() {
    // 隐式转换
    int a = 10;
    double b = a;  // 整型自动转换为双精度浮点型
    printf("隐式转换结果：b = %f\n", b);

    // 强制转换
    int c = 15;
    double d = (double)c / 2;  // 整型强制转换为双精度浮点型
    printf("强制转换结果：d = %f\n", d);

    // 数字类型后缀
    float e = 10.0f;  // f后缀表示浮点数
    printf("数字类型后缀结果：e = %f\n", e);

    // 更多的数字类型后缀
    unsigned int f = 10U;  // U后缀表示无符号整数
    printf("数字类型后缀结果：f = %u\n", f);

    long g = 10L;  // L后缀表示长整数
    printf("数字类型后缀结果：g = %ld\n", g);

    unsigned long h = 10UL;  // UL后缀表示无符号长整数
    printf("数字类型后缀结果：h = %lu\n", h);

    long long i = 10LL;  // LL后缀表示长长整数
    printf("数字类型后缀结果：i = %lld\n", i);

    unsigned long long j = 10ULL;  // ULL后缀表示无符号长长整数
    printf("数字类型后缀结果：j = %llu\n", j);

    long double k = 10.0L;  // L后缀表示双精度浮点数
    printf("数字类型后缀结果：k = %Lf\n", k);

    return 0;
}
